JMU JMU - Department of Computer Science
Help Tools
Project Policies


Projects must be truly interactive, must involve both visual and auditory content, and must demonstrate an understanding of the concepts covered in class. Projects need not involve original concepts (i.e., you don't need to come up with a novel idea).

1 Topics

Broadly speaking there are three different kinds of projects, applications for general users, applications for content developers, and libraries.

1.1 Applications for General Users

This type of project involves an application that has broad applicability but makes use of both auditory and visual content. These kinds of applications tend to be in one of the following domains.

1.1.1 Advertising and Marketing

Possible projects in advertising and marketing include: a multimedia market research system, a multimedia catalog, an interactive/animated advertisement system, "I Bleed Purple" images/animations, and a JMU trivia game.

1.1.2 Education and Training

Possible education and training projects include: a classroom monitoring system, a course on music/art appreciation, a slide-show editor, demonstrations of important concepts from mathematics and the sciences (e.g., spread of influenza, simulation of a bullet shot at a falling target, simulation of inherited traits), demonstration of important concepts from computer science (e.g., a simulation of the Internet or a particular protocol, demonstration of encryption processes, steganography), demonstration of important concepts from the social/behavioral sciences (e.g., multimedia microeconomics lesson, election results over time, simulation of a room evacuation, toll booth or other queueing simulator), a proof of concept of an exercise training system or sign language training system, a game that teaches fractions, and a game that teaches geography.

1.1.3 Entertainment

Possible entertainment projects include: a closed-captioning system, a digital photograph selector (select, organize, and renumber photos), a Karaoke system, a video game, a fish tank in which the fish respond to spectators, a system for creating/displaying animated greeting cards with personalized audio, an interactive children's book, and an interactive science fiction story.

1.1.4 Personal and Business Information Services

Possible projects in the area of personal and business information services include: a financial information service, an interactive electronic version of The Breeze, a traffic information service, a world news service, a sports information service, and an entertainment information service.

1.1.5 Travel and Tourism

Possible travel and tourism projects include: a hotel management system, an in-flight tracking system, an interactive model of the campus, an interactive model of the Harrisonburg area, an interactive model of a National Park

1.2 Applications for Content Developers

This type of project involves an application that is targeted at a visual content developer or auditory content developer, but still makes use of the other kind of content.

Examples include image processing systems (e.g., Gimp), vector drawing systems (e.g., Inkscape), sampled auditory content editors (e.g., Audacity), and described auditory content editors.

1.3 Libraries

All semester you've used a library that was written for the textbook. As you know, this library is somewhat limited. Projects in this category are intended to overcome these limitations.

Examples include libraries for: handling game "levels", for saving and retrieving game state in a flexible way, for handling additional content formats (either auditory or visual).

A successful library project will be usable by students taking this course in the future.

2 Proposal/Initial Product Backlog

You must get your project approved in advance. You must submit proposal that includes: a list of team members, a brief description of the product, and a prioritized list of features that you intend to include in the product. See the syllabus for due dates.

3 Collaboration

You may work on the project in groups (of up to 4 people). The size of the project must be commensurate with the size of the group.

4 Materials

All code, pictures and sounds must be original (i.e., do not plagiarize and do not infringe on any copyrights). You may use code developed/used for lectures or assignments.

5 Platform/Environment

All projects must work as an application Linux/UNIX as it is installed in the Departmental classrooms. This means that your code must be compiled using v17 of the Java Development Kit (JDK) Standard Edition. (Ideally, they should also work under Windows and OS-X, but this is not required.)

Projects that do not satisfy this requirement will receive a grade of 0.

6 Visibility

All projects will be publicly available on the course WWW site (after the presentations).

7 Hints and Tips

1. As discussed in the book, the classes we developed for rendering and processing auditory content do not use memory efficiently. Hence, if you use them you will need to use small audio clips. If you do not need to perform operations on the auditory content, you should probably use AudioClip objects directly. (Also, remember that there is a typo in the book and you should decorate the InputStream as a BufferedInputStream before constructing an AudioInputStream so that it will support mark() and reset() even if it is inside of a .jar file.) For example, you could use the following ClipContent class:

2. You may need to create some other SimpleContent classes to get your application to do what you want it to do. The following classes might help get you started:

which are used in the following demo:

3. Regardless of the version of the compiler you are using, you can change the "target" runtime using the -source and -target options. So, for example, you can compile to version 17 as follows:

      javac -source 17 -target 17 *.java
    

8 Submissions

Groups must submit ALL materials associated with their projects on the "due date". They must be submitted by only one member of the group.

All code and documentation written for the final project must conform to the course style guides. Submissions that do not conform to the course style guide and/or the above guidelines will not be accepted.

8.1 Design Materials

Design materials must be submitted using Canvas. They must be in a single .zip file named design.zip.

8.2 Source Code

Source code must be submitted using Canvas. It must be packaged appropriately in a file named source.zip. It must conform to the course style guide.

8.3 Executable Code

Executable code must be submitted using Canvas. It must be in a single executable .jar file a name that is related to the project, but containing no spaces or special characters (e.g., BugBattle.jar).

8.4 External Documentation

You must submit (using Canvas) a file named readme.txt that explains how to run the application. This file must also contain a section that describes all "known bugs".

You must also submit (using Canvas) a .zip file named documentation.zip that contains the HTML documentation generated by javadoc.

9 Presentations

Each group must present their project in class. Presentation times will NOT be announced in advance. Groups must be prepared to present at any time during the "presentation period". Presentations will make use of ONLY the materials submitted on the "due date".

Each presentation will last about 5 minutes, including setup time and questions (though the exact length will depend on the number of groups). "Intermediate" presentations must include a brief description of the product and a demonstration of the working product. Final presentations must include a brief description of the product, a brief demonstration of the product, a discussion of the design, and a discussion of any implementation issues that arose.

Presentations must be informative (i.e., your fellow students must learn something from your presentation, not just be entertained)!

10 Grading

Projects will be evaluated primarily based on their technical merit (i.e., aesthetic issues will only have a minor impact on grades). To that end, your design and implementation should be: rugged (i.e., reliable, robust, and safe), easy to repair and enhance, easy to understand and use, and easy to re-use. For example, if your project is a game that needs to display scores, a good design/implementation will include classes that could easily be used in other games.

10.1 Presentations

While I do not require attendance in general, I do require (as a matter of courtesy/collegiality) that all students attend all presentations. Students who do not attend all presentations will be penalized (i.e., their grade on the project will be significantly reduced).

10.2 Peer Evaluations

All students must participate in the evaluation process. Students who do not participate in the evaluation process will receive a grade of 0 for the final project.

You will be provided with a form for evaluating yourself and the members of your group. Your grade will be based, in part, on both your evaluations and the "appropriateness" of your evaluations (i.e., how consistent your evaluations are with my evaluations). If your evaluations are significantly different from mine, you will be given an opportunity to justify your evaluations. If you can't convince me that your evaluations were "appropriate", your grade will be reduced accordingly.

Copyright 2024